package com.sailing.xjpb.ipaas.client.common;

import com.sailing.xjpb.common.JsonUtils;
import com.sailing.xjpb.ipaas.client.entity.dto.SipUserCurrentInfoDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;

import java.nio.charset.StandardCharsets;

/**
 * 用户信息解密
 *
 * @author YW
 */
@Slf4j
public class UserInfoDecoder {

    private UserInfoDecoder() {

    }

    /**
     * 用户信息解密
     *
     * @param key            解密需要的key
     * @param encodeUserInfo 加密的用户信息
     * @return 解密后的用户信息
     */
    public static SipUserCurrentInfoDTO decode(String key, String encodeUserInfo) {
        if (log.isDebugEnabled()) {
            log.debug("使用key={}对用户信息进行解密", key);
        }
        String decodeUserInfo = new String(Base64.decodeBase64(encodeUserInfo), StandardCharsets.UTF_8);
        return JsonUtils.parseObject(decodeUserInfo, SipUserCurrentInfoDTO.class);
    }

}
